package edu.unf.cen6940.dao;

import edu.unf.cen6940.domain.Faculty;

import java.util.Set;

import org.skyway.spring.util.dao.JpaDao;

import org.springframework.dao.DataAccessException;

/**
 * DAO to manage Faculty entities.
 * 
 */
public interface FacultyDAO extends JpaDao<Faculty> {

	/**
	 * JPQL Query - findFacultyByNnumberContaining
	 *
	 */
	public Set<Faculty> findFacultyByNnumberContaining(String nnumber) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByNnumberContaining
	 *
	 */
	public Set<Faculty> findFacultyByNnumberContaining(String nnumber, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByPrimaryKey
	 *
	 */
	public Faculty findFacultyByPrimaryKey(Integer facultyId) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByPrimaryKey
	 *
	 */
	public Faculty findFacultyByPrimaryKey(Integer facultyId, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByUrl
	 *
	 */
	public Set<Faculty> findFacultyByUrl(String url) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByUrl
	 *
	 */
	public Set<Faculty> findFacultyByUrl(String url, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByActive
	 *
	 */
	public Set<Faculty> findFacultyByActive(String active) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByActive
	 *
	 */
	public Set<Faculty> findFacultyByActive(String active, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByActiveContaining
	 *
	 */
	public Set<Faculty> findFacultyByActiveContaining(String active_1) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByActiveContaining
	 *
	 */
	public Set<Faculty> findFacultyByActiveContaining(String active_1, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByUrlContaining
	 *
	 */
	public Set<Faculty> findFacultyByUrlContaining(String url_1) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByUrlContaining
	 *
	 */
	public Set<Faculty> findFacultyByUrlContaining(String url_1, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByFirstName
	 *
	 */
	public Set<Faculty> findFacultyByFirstName(String firstName) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByFirstName
	 *
	 */
	public Set<Faculty> findFacultyByFirstName(String firstName, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByNnumber
	 *
	 */
	public Set<Faculty> findFacultyByNnumber(String nnumber_1) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByNnumber
	 *
	 */
	public Set<Faculty> findFacultyByNnumber(String nnumber_1, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByEmail
	 *
	 */
	public Set<Faculty> findFacultyByEmail(String email) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByEmail
	 *
	 */
	public Set<Faculty> findFacultyByEmail(String email, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByLastName
	 *
	 */
	public Set<Faculty> findFacultyByLastName(String lastName) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByLastName
	 *
	 */
	public Set<Faculty> findFacultyByLastName(String lastName, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByFirstNameContaining
	 *
	 */
	public Set<Faculty> findFacultyByFirstNameContaining(String firstName_1) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByFirstNameContaining
	 *
	 */
	public Set<Faculty> findFacultyByFirstNameContaining(String firstName_1, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByEmailContaining
	 *
	 */
	public Set<Faculty> findFacultyByEmailContaining(String email_1) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByEmailContaining
	 *
	 */
	public Set<Faculty> findFacultyByEmailContaining(String email_1, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByFacultyId
	 *
	 */
	public Faculty findFacultyByFacultyId(Integer facultyId_1) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByFacultyId
	 *
	 */
	public Faculty findFacultyByFacultyId(Integer facultyId_1, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findAllFacultys
	 *
	 */
	public Set<Faculty> findAllFacultys() throws DataAccessException;

	/**
	 * JPQL Query - findAllFacultys
	 *
	 */
	public Set<Faculty> findAllFacultys(int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByLastNameContaining
	 *
	 */
	public Set<Faculty> findFacultyByLastNameContaining(String lastName_1) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyByLastNameContaining
	 *
	 */
	public Set<Faculty> findFacultyByLastNameContaining(String lastName_1, int startResult, int maxRows) throws DataAccessException;
	
	/**
	 * Search by term
	 * 
	 * */
	public Set<Faculty> searchByTerm(String term) throws DataAccessException;
	
	

}